The present invention is generally related to communication networks, and more particularly, to a system and method for allowing a device located at the ingress/egress point of a communication network to monitor congestion notifications at the data link layer of the communication network, and to proactively control the transmission rate of the end user device that is causing such congestion.
Historically, in the field of data communications, modems, data service units (DSU), and channel service units (CSU) have been used to convey information from one location to another. Digital technology now enables modems and other communication devices, such as frame relay data service units (DSU""s) and frame relay access units (FRAU""s) to communicate large amounts of data at higher speeds. The communication scheme employed by these devices generally adheres to a model, known as the Open Systems Interconnect (OSI) seven-layer model. This model specifies the parameters and conditions under which information is formatted and transferred over a given communications network. A general background of the OSI seven-layer model follows.
In 1978, a framework of international standards for computer network architecture known as xe2x80x9cOSIxe2x80x9d (Open Systems Interconnect) was developed. The OSI reference model of network architecture consists of seven layers. From the lowest to the highest, the layers are: (1) the physical layer; (2) the data link layer; (3) the network layer; (4) the transport layer; (5) the session layer; (6) the presentation layer; and (7) the application layer. Each layer uses the layer below it to provide a service to the layer above it. The lower layers are implemented by lower level protocols which define the electrical and physical standards, perform the byte ordering of the data, and govern the transmission, and error detection and correction of the bit stream. The higher layers are implemented by higher level protocols which deal with, inter alia, data formatting, terminal-to-computer dialogue, character sets, and sequencing of messages.
Layer 1, the physical layer, controls the direct host-to-host communication between the hardware of the end users"" data terminal equipment (e.g., a modem connected to a PC).
Layer 2, the data link layer, generally fragments the data to prepare it to be sent on the physical layer, receives acknowledgment frames, performs error checking, and re-transmits frames which have been incorrectly received.
Layer 3, the network layer, generally controls the routing of packets of data from the sender to the receiver via the data link layer, and it is used by the transport layer. An example of the network layer is the Internet Protocol (IP), which is the network layer for the TCP/IP protocol widely used on Ethernet networks. In contrast to the OSI seven-layer architecture, TCP/IP (Transmission Control Protocol over Internet Protocol) is a five-layer architecture which generally consists of the network layer and the transport layer protocols.
Layer 4, the transport layer, determines how the network layer should be used to provide a point-to-point, virtual, error-free connection so that the end user devices send and receive uncorrupted messages in the correct order. This layer establishes and dissolves connections between hosts. It is used by the session layer. TCP is an example of the transport layer.
Layer 5, the session layer, uses the transport layer and is used by the presentation layer. The session layer establishes a connection between processes on different hosts. It handles the creation of sessions between hosts as well as security issues.
Layer 6, the presentation layer, attempts to minimize the noticeability of differences between hosts and performs functions such as text compression, and format and code conversion.
Layer 7, the application layer, is used by the presentation layer to provide the user with a localized representation of data which is independent of the format used on the network. The application layer is concerned with the user""s view of the network and generally deals with resource allocation, network transparency and problem partitioning.
The communications networks that operate within the OSI seven-layer model include a number of paths or links that are interconnected to route voice, video, and/or digital data (hereinafter, collectively referred to as xe2x80x9cdataxe2x80x9d) traffic from one location of the network to another. At each location, an interconnect node couples a plurality of source nodes and destination nodes to the network. In some cases, the sources and destinations are incorporated in a private line network that may include a series of offices connected together by leased-lines with switching facilities and transmission equipment owned and operated by the carrier or service provider and leased to the user. This type of network is conventionally referred to as a xe2x80x9ccircuit-switching networkxe2x80x9d. Accordingly, a source node of one office at one location of the network may transmit data to a destination node of a second office located at another location of the network through their respective switching facilities.
At any given location, a large number of source nodes may desire to communicate through their respective switching facilities, or interconnect node, to destination nodes at various other locations of the network. The data traffic from the various source nodes is first multiplexed through the source switching facility, and then demultiplexed at the destination switching facility, and finally delivered to the proper destination node. A variety of techniques for efficiently multiplexing data from multiple source nodes onto a single circuit of the network are presently employed in private line networks. For instance, time division multiplexing (TDM) affords each source node full access to the allotted bandwidth of the circuit for a small amount of time. The circuit is divided into defined time segments, with each segment corresponding to a specific source node, to provide for the transfer of data from those source nodes, when called upon, through the network.
Another type of network is conventionally referred to as a xe2x80x9cpacket-switching network.xe2x80x9d Frame relay networks are one implementation of a packet-switching network. Packet-switching networks, as opposed to circuit-switching networks, allow multiple users to share data network facilities and bandwidth, rather than providing a specific amount of dedicated bandwidth to each user, as in TDM. Instead, packet switches divide bandwidth into connectionless, virtual circuits. Virtual circuits can be permanent virtual circuits (PVC""s) or switched virtual circuits (SVC""s). As is known, virtual circuit bandwidth is consumed only when data is actually transmitted. Otherwise, the bandwidth is not used. In this way, packet-switching networks essentially mirror the operation of a statistical multiplexer (whereby multiple logical users share a single network access circuit). Frame relay generally operates within layer 2 (the data link layer) of the OSI model, and is an improvement over previous packet switching techniques, such as the industry standard X.25, in that frame relay requires significantly less overhead.
In frame relay networks, as in all communication networks, access to the network is provided by a network service provider. These service providers generally provide the communication and switching facilities over which the above-mentioned communication devices operate. Typically, an end user desirous of establishing a communications network provisions the network services in the form of a public switched service network. An example of a public switched network is the public switched telephone network (PSTN) or a public data network (PDN). These public networks typically sell network services, in the form of connectivity, to end users.
Typically a user of a public network will purchase a particular level of service from the network service provider. This level of service can be measured by, for example, network availability as a percentage of total time on the network, the amount of data actually delivered through the network compared to the amount of data attempted, or possibly the network latency, or the amount of time it takes for a particular communication to traverse the network.
As is generally known, communications among devices in contemporary communication networks generally implicate the lower three to four layers of the OSI model. These include the physical, data link, network, and transport layers. For example, in packet-switched and frame relay technologies, internode communications affect, and are controlled by, the lower three layers (physical, data link, and network). However, the higher level transport layer may be utilized for purposes of error control.
By way of a more particular illustration, networked transmissions on the World Wide Web of the Internet are generally governed by TCP/IP (Transmission Control Protocol/Internet Protocol), which is a family of protocols. The TCP/IP protocols affect the network layer, transport layer, and application layer, but are generally transparent to the remaining layers of the OSI model. Within the network layer, TCP/IP offers a variety of protocols, of which the Internet Protocol (IP) offers the ability to move data between hosts. The remaining protocols offer services to assist IP in its functions. The transport layer provides services that allow one application program on a particular host to communicate with another application program on a remote host. Transmission Control Protocol (TCP) is utilized at the transport layer to effect bi-directional handshaking for the transmission and control of data packets being sent between hosts. The application layer of TCP/IP generally formats data that is to be communicated to a remote host and performs other services that are necessary to accommodate this communication. In summary, the application layer creates data that is passed to the transport layer, which in turn employs transmission control. The transport layer then passes the data/messages to the network layer, which divides the messages into defined, discrete pieces, also called packets. As is known, these packets are further divided into frames at the data link layer and bits at the physical layer for transmission to remote nodes.
With respect to the network layer of the OSI model, the IP provides an unreliable, connectionless method of delivering data from one host to another. It is characterized as unreliable because the method does not guarantee delivery and, in fact, provides no particular sequencing to assure that data packets are received in the order in which they are transmitted. It is referred to as connectionless, because no initialization sequence is necessary in order for one host to connect with another using the IP protocol. Furthermore, each data packet is independent of every other data packet.
Above the network layer is the transport layer, which handles the TCP protocol. While the packet transmission at the network layer is deemed to be unreliable, error and flow control may be implemented at the higher, transport layer. In this regard, TCP is utilized to establish reliable end-to-end transmissions. More particularly, and as is known, TCP places certain handshaking requirements on the transmission of data packets. For each data packet transmitted, an acknowledgment packet must be received. The reception of an acknowledgment informs the transmitting node (that received the acknowledgment) that the packet was successfully received at the other end. Unless an acknowledgment is xe2x80x9cpiggy-backedxe2x80x9d onto a return data packet, the acknowledgment packet is generally very short in length.
Most contemporary communication networks, such as frame relay and asynchronous transfer mode (ATM) networks, provide congestion notification mechanisms to the network user at the point of ingress/egress to the network. Unfortunately, the user equipment at the edge of the network, which is typically a router, generally ignores any congestion notifications since this equipment is normally implementing the network layer and has no ability to control the flow of data at the end user session. The result is that when a user session is sending data at a rate higher than the network can handle, congestion builds within the network until the network starts discarding data. This discarded data is detected by the end user session, typically through the TCP, which responds by slowing the data rate for the session. Since the discarded data must be retransmitted, which adds to the congestion on the network, this is a very inefficient method of providing flow control for a congested communication network.
The following discussion offers an explanation of network congestion with reference to frame relay networks. However, similar mechanisms apply to most other contemporary communication networks, such as ATM. Frame relay networks provide for the transport of information within a xe2x80x9ccommittedxe2x80x9d information rate (CIR) as well as allowing for bursts of data above the committed rate, which is called the burst rate (Be). The network makes a best effort to deliver the burst data, as long as there is excess capacity available in the network. When capacity is not available, network congestion can occur, which generally results in information being discarded by the network. To prevent this loss of data from occurring, most communication networks, and frame relay networks in particular, provide xe2x80x9ccongestion indicatorsxe2x80x9d that are used to notify the end users of the network when data on a particular connection is experiencing congestion. In the case of frame relay, a forward explicit congestion notification (FECN) bit is set on frames arriving from the network to indicate that frames traveling in the same direction as the frame containing the FECN indication are experiencing congestion. The backward explicit congestion notification (BECN) bit is set to indicate that frames traveling in the opposite direction to the frame containing the BECN indication are experiencing congestion.
The theory is that equipment connected to the edge of the network will respond to the congestion indications by reducing the data rate for information being sent to the network. For BECN notifications the equipment receiving the BECNs should reduce the rate of its frame transmissions, while for FECNs the equipment receiving the notification should notify its peer at the far end of the network that the peer should reduce its data rate. The problem is that most of the equipment connected to the edge of contemporary communication networks (e.g., routers) typically ignores any congestion notifications and does not adjust the frame transmission rate. The reason is that since it is rare for end user applications to be resident on the equipment connected to the network, the equipment connected to the network has no means of controlling the data rate for an application""s session. For example, routers generally ignore FECNs and BECNs since they are responsible for routing IP packets and have no control over the transmission rate of TCP traffic with end users on hosts elsewhere in the network.
The current state of the art for congestion control is that the congestion notifications are typically ignored, congestion builds within the communication network until the network is forced to start discarding information (frames, cells, etc.), and the end-to-end user application session detects the lost information and reduces the rate of transmission.
One problem associated with current systems is that while some end-point protocols (e.g., TCP) respond to dropped frames by decreasing the rate of transmission, many others either cannot detect dropped frames or do not base the transmission rate on the number of dropped frames. For these applications, network congestion is only relieved when no information remains to be sent.
Another problem with present systems is that because controlling the data transmission rate based on discarded data is a reactive method, nothing is done to relieve the congestion until after the network is already saturated. This results in longer recovery times and inefficient use of the network since the dropped information must be retransmitted. Forcing the end user session to retransmit information increases the load being offered to the network (at least up to the point of the congestion) and may actually increase the level of congestion in the network.
Another method used today that attempts to alleviate congestion for some traffic types is to use some sort of priority queuing at the ingress point of the network. This method allows particular traffic types to be defined and prioritized. While this does not prevent congestion from occurring it does give higher priority traffic a better chance of getting through during periods of congestion. Lower priority traffic is queued until the congestion subsides or until the queues fill up and the traffic has to be discarded. While this method helps for high priority traffic, it still suffers from the shortcoming of being a reactive method, and under periods of heavy congestion it falls back to merely discarding traffic in order to relieve the congestion.
Thus, there is a need in the industry for a system and method to monitor the congestion notifications at the data link layer of a communication network and proactively rate control the end user session(s) to minimize the amount of information that must be discarded due to network congestion.
The present invention provides a system and method for allowing a device located at the ingress/egress point of a communication network to monitor the congestion notifications at the data link layer of the communication network, and proactively rate control the end user session(s) in response thereto. This is accomplished by having the communication device at the edge of the network: (1) monitor the data streams coming out of the communication network for congestion notifications, and (2) actively rate control the end user application sessions based on such congestion notifications to alleviate the network congestion. This provides congestion control for the network and can be used to avoid congestion reaching the point where the network has to discard data.
Briefly described, this is accomplished by having a communication device at the edge of the network monitor the congestion notifications at the link layer of the network. As an example, a frame relay access unit (FRAU) connected to a frame relay network monitors incoming frames for forward explicit congestion notification (FECN) bits and backward explicit congestion notification (BECN) bits, which indicate not only congestion but the direction that is experiencing congestion. Additionally, the FRAU continuously monitors and tracks the state of the end user session(s) (such as TCP) that are established over the network. When the number of frames received with FECNs/BECNs reaches a particular threshold, the end user session is actively rate controlled by a method suitable for the particular session type. When the congestion is alleviated, indicated by the absence of frames with FECNs or BECNS, the rate controlled end user sessions are gradually increased until they are no longer being rate controlled.
In addition, the end user sessions can be divided into two classes: mission critical sessions and non-mission critical sessions. These session types can be prioritized so that non-mission critical sessions can be rate controlled during periods of network congestion while mission critical sessions remain unaffected. Mission critical sessions are effectively reserved a specific amount of bandwidth with the rest of the available bandwidth (up to the congestion point) being allocated dynamically to the non-mission critical sessions.
An advantage of the invention is that the invention bypasses the need to depend on the equipment connected to a communication network to respond to congestion notification from the network. By monitoring the end user sessions and directly controlling the rate at which the end users send data, the invention creates a direct bridge between the communication network""s layer 2 protocols and the end user""s layer 4 and above application sessions. This solves a major problem since the end user applications resident on the equipment are not typically connected to the network, and the applications are hence unable to normally respond, or even be aware of, congestion indications from the network.
Another advantage of the invention is that the invention provides the ability to define mission critical data flows and provide a guaranteed data rate that is not affected by network congestion or the current data rate of non-mission critical data flows. This protects mission critical data flows by directly rate controlling non-mission critical data flows that share the same network connection with the mission critical data flows. The data rate of non-mission critical sessions can be actively slowed before it becomes a problem, thus allowing the mission critical data to be transmitted without discarding any of the data due to network congestion.
Other features of the present invention will become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional features be included herein within the scope of the present invention.